package com.group4.datafactorybackend.entity.VO;

import cn.afterturn.easypoi.excel.annotation.Excel;

import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.io.Serializable;

/**
 * @author xin
 * @date 2022/7/28
 * @description 数据标准目录文件导入类
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ExcelTarget("DataCriterionExcelVO")
public class DataCriterionExcelVO implements Serializable {

    /**
     * 数据标准中文名
     */
    @Excel(name = "中文名称",isImportField = "true")
    @Pattern(regexp = "^[a-zA-Z\\u4e00-\\u9fa5]*$",message = "中文名称只支持中文及英文大小写")
    @NotBlank(message = "中文名称不能为空")
    private String dcChName;

    /**
     * 数据标准英文名
     */
    @Excel(name = "英文名称",isImportField = "true")
    @NotBlank(message = "英文名称不能为空")
    @Pattern(regexp ="^[a-zA-Z][a-zA-Z0-9_]*$",message = "英文名称只支持英文大小写、数字及下划线且只能英文开头")
    private String dcEnName;

    /**
     * 数据标准说明
     */
    @Excel(name = "标准说明")
    private String dcIllustrate;

    /**
     * 数据是否为空
     */
    @Excel(name = "是否可为空")
    private String dcDataNull;

    /**
     * 数据标准来源机构
     */
    @Excel(name = "来源机构",isImportField = "true")
    @NotBlank(message = "来源机构不能为空")
    private String dcSourceStructure;

    /**
     * 数据默认值
     */
    @Excel(name = "默认值")
    private String dcValue;

    /**
     * 数据类型
     */
    @Excel(name = "数据类型",isImportField = "true")
    @NotBlank(message = "数据类型不能为空")
    private String dcType;

    /**
     * 数据长度
     */
    @Excel(name = "数据长度")
    private Long dcLength;

    /**
     * 数据精度
     */
    @Excel(name = "数据精度")
    private Double dcPrecision;

    /**
     * 数据最小值
     */
    @Excel(name = "取值范围最小值")
    private String dcMinValue;

    /**
     * 数据最大值
     */
    @Excel(name = "取值范围最大值")
    private String dcMaxValue;

    /**
     * 码表名称
     */
    @Excel(name = "引用码表编号")
    private String dcStopwatchName;
}
